package Vista;
import java.awt.Canvas;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.JToggleButton;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import Controlador.Sistema;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public abstract class PantallaServicio extends javax.swing.JFrame {
	
	private static final long serialVersionUID = 1L;
	protected Sistema sistema;
	protected JTextField txtNombreServicio;
	protected JTextField txtUnidad;
	protected JTextField txtValorUnidad;
	protected JTextField txtDescuento;
	private JLabel lblNombreServicio;
	private JLabel jLabel2;
	private JLabel jLabel3;
	private ButtonGroup grupoBotonesOpcion;
	private JRadioButton jrbPaquete;
	private JRadioButton jrbDatos;
	private JRadioButton jrbSMS;
	private JRadioButton jrbVoz;
	private JLabel jlTipoServicio;
	protected JButton jbCancelar;
	protected JButton jbOK;
	protected JButton jbAgregar;
	protected JButton jbBuscar;
	private JLabel jLabel1;


	public PantallaServicio(Sistema s, String TITLE) {
		// TODO Auto-generated constructor stub
		super(TITLE);
		sistema=s;
		//initGUI();
	}
	
	protected void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				txtNombreServicio = new JTextField();
				getContentPane().add(txtNombreServicio);
				txtNombreServicio.setBounds(187, 92, 137, 28);
			}
			{
				txtUnidad = new JTextField();
				getContentPane().add(txtUnidad);
				txtUnidad.setBounds(187, 126, 137, 28);
			}
			{
				txtValorUnidad = new JTextField();
				getContentPane().add(txtValorUnidad);
				txtValorUnidad.setBounds(187, 160, 137, 28);
			}
			{
				lblNombreServicio = new JLabel();
				getContentPane().add(lblNombreServicio);
				lblNombreServicio.setText("Nombre del Servicio");
				lblNombreServicio.setBounds(12, 91, 167, 28);
			}
			{
				jLabel1 = new JLabel();
				getContentPane().add(jLabel1);
				jLabel1.setText("Unidad");
				jLabel1.setBounds(12, 125, 167, 28);
			}
			{
				jLabel2 = new JLabel();
				getContentPane().add(jLabel2);
				jLabel2.setText("Valor Unidad");
				jLabel2.setBounds(12, 159, 167, 28);
			}
			{
				jbBuscar = new JButton();
				getContentPane().add(jbBuscar);
				jbBuscar.setText("Buscar");
				jbBuscar.setBounds(330, 92, 97, 28);
			}
			{
				txtDescuento = new JTextField();
				getContentPane().add(txtDescuento);
				txtDescuento.setBounds(187, 160, 137, 28);
				txtDescuento.setVisible(false);
			}
			{
				jLabel3 = new JLabel();
				getContentPane().add(jLabel3);
				jLabel3.setText("Descuento");
				jLabel3.setBounds(12, 159, 167, 28);
				jLabel3.setVisible(false);
			}
			{
				jbAgregar = new JButton();
				getContentPane().add(jbAgregar);
				jbAgregar.setText("Agregar");
				jbAgregar.setBounds(12, 243, 121, 29);
				jbAgregar.setVisible(false);
			}
			{
				jbOK = new JButton();
				getContentPane().add(jbOK);
				jbOK.setText("OK");
				jbOK.setBounds(159, 243, 124, 31);
			}
			{
				jbCancelar = new JButton();
				getContentPane().add(jbCancelar);
				jbCancelar.setText("Cancelar");
				jbCancelar.setBounds(306, 243, 127, 31);
				jbCancelar.addActionListener(new ActionListener(){
					public void actionPerformed(ActionEvent e) {
						dispose();
					}
					
				});
			}
			{
				jlTipoServicio = new JLabel();
				getContentPane().add(jlTipoServicio);
				jlTipoServicio.setText("Tipo de Servicio");
				jlTipoServicio.setBounds(12, 16, 190, 21);
			}
			{
				jrbVoz = new JRadioButton();
				getContentPane().add(jrbVoz);
				jrbVoz.setText("Voz");
				jrbVoz.setBounds(12, 43, 80, 20);
				jrbVoz.setSelected(true);
				jrbVoz.addActionListener(new ActionListener(){

					@Override
					public void actionPerformed(ActionEvent e) {
						// TODO Auto-generated method stub
						txtDescuento.setVisible(false);
						jLabel3.setVisible(false);
						txtValorUnidad.setVisible(true);
						jLabel2.setVisible(true);
					}					
				});			
			}
			{
				jrbSMS = new JRadioButton();
				getContentPane().add(jrbSMS);
				jrbSMS.setText("SMS");
				jrbSMS.setBounds(113, 43, 80, 20);
				jrbSMS.addActionListener(new ActionListener(){

					@Override
					public void actionPerformed(ActionEvent e) {
						// TODO Auto-generated method stub
						txtDescuento.setVisible(false);
						jLabel3.setVisible(false);
						txtValorUnidad.setVisible(true);
						jLabel2.setVisible(true);
					}					
				});								
			}
			{
				jrbDatos = new JRadioButton();
				getContentPane().add(jrbDatos);
				jrbDatos.setText("Datos");
				jrbDatos.setBounds(226, 43, 80, 20);
				jrbDatos.addActionListener(new ActionListener(){

					@Override
					public void actionPerformed(ActionEvent e) {
						// TODO Auto-generated method stub
						txtDescuento.setVisible(false);
						jLabel3.setVisible(false);
						txtValorUnidad.setVisible(true);
						jLabel2.setVisible(true);
					}					
				});				
			}
			{
				jrbPaquete = new JRadioButton();
				getContentPane().add(jrbPaquete);
				jrbPaquete.setText("Paquete");
				jrbPaquete.setBounds(330, 43, 80, 20);
				jrbPaquete.addActionListener(new ActionListener(){

					@Override
					public void actionPerformed(ActionEvent e) {
						// TODO Auto-generated method stub
						txtDescuento.setVisible(true);
						jLabel3.setVisible(true);
						txtValorUnidad.setVisible(false);
						jLabel2.setVisible(false);
					}					
				});
			}
			{
				grupoBotonesOpcion = new ButtonGroup();
				grupoBotonesOpcion.add( jrbVoz );
				grupoBotonesOpcion.add( jrbSMS );
				grupoBotonesOpcion.add( jrbDatos );
				grupoBotonesOpcion.add( jrbPaquete );
			}
			pack();
			this.setSize(473, 337);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void ocultarBuscar(){
		jbBuscar.setVisible(false);
	}
	
	private void bloquearCampos(){
		txtNombreServicio.setEnabled(false);
		txtUnidad.setEnabled(false);
		txtValorUnidad.setEnabled(false);
		txtDescuento.setEnabled(false);
	}
	
	private void desBloquearNombreServicio(){
		txtNombreServicio.setEditable(true);
	}
	
	private void desBloquearCampos(){
		txtNombreServicio.setEnabled(true);
		txtUnidad.setEnabled(true);
		txtValorUnidad.setEnabled(true);
		txtDescuento.setEnabled(true);
	}
	
	protected boolean validarNombreServicio(){
		JFrame j1 = new JFrame();
		if (txtNombreServicio.getText().equals("")) {																					
			JOptionPane.showMessageDialog(j1,
					"Debe ingresar un nombre de servicio",
					"Omision",
					JOptionPane.WARNING_MESSAGE);
			txtNombreServicio.requestFocus(true);
			return false;
		}
		return true;
	}
	
	protected boolean validarCampos(){
		JFrame j1 = new JFrame();		
		@SuppressWarnings("unused")
		Float numero;
		
		if (txtNombreServicio.getText().equals("")) {																					
			JOptionPane.showMessageDialog(j1,
					"Debe ingresar un nombre de servicio",
					"Omision",
					JOptionPane.WARNING_MESSAGE);	
			txtNombreServicio.requestFocus(true);
			return false;
		}
		if (txtUnidad.getText().equals("")) {																					
			JOptionPane.showMessageDialog(j1,
					"Debe ingresar una unidad",
					"Omision",
					JOptionPane.WARNING_MESSAGE);
			txtUnidad.requestFocus(true);
			return false;
		}		
		if(this.tipoServicio().charAt(0)=='P')
		{
			try{
			    numero = Float.parseFloat(txtDescuento.getText());
			}catch(NumberFormatException e){
				JOptionPane.showMessageDialog(j1,
						"El valor de descuento debe ser numerico",
						"Error de formato",
						JOptionPane.WARNING_MESSAGE);
				txtDescuento.requestFocus(true);
				return false;
			}
		}
		else{
			try{
			    numero = Float.parseFloat(txtValorUnidad.getText());
			}catch(NumberFormatException e){
				JOptionPane.showMessageDialog(j1,
						"El valor de la unidad debe ser numerico",
						"Error de formato",
						JOptionPane.WARNING_MESSAGE);
				txtValorUnidad.requestFocus(true);
				return false;
			}
		}
		return true;
	}
	
	protected void inicializarAlta(){
		this.ocultarBuscar();
		this.desBloquearCampos();
		jbAgregar.setEnabled(false);
		txtNombreServicio.setText("");
		txtUnidad.setText("");
		txtValorUnidad.setText("");
		txtDescuento.setText("");
	}

	protected String tipoServicio(){
        if(jrbPaquete.isSelected())
                return "P";
        if(jrbVoz.isSelected())
                return "V";
        if(jrbSMS.isSelected())
                return "M";
        if(jrbDatos.isSelected())
                return "D";
        return null;
	}
}
